package common

import (
	"fastgin/global"
	"fastgin/models"
	"fastgin/utils/pwd"
	"fmt"
)

// UpdatePassword 更新用户密码
func UpdatePassword(user *models.UserModel, oldPwd, newPwd string) error {
	// 检查旧密码是否正确
	if !pwd.CompareHashAndPassword(user.Passwd, oldPwd) {
		return fmt.Errorf("旧密码不正确")
	}
	// 如果新密码和旧密码相同，不更新密码
	if oldPwd == newPwd {
		return fmt.Errorf("新密码不能与旧密码相同")
	}
	// 生成新密码的哈希
	hashPwd := pwd.GenerateFromPassword(newPwd)
	fmt.Printf("哈希密码:%s", hashPwd)
	// 更新密码
	if err := global.DB.Model(user).Where("id=?", user.ID).Update("passwd", hashPwd).Error; err != nil {
		return fmt.Errorf("密码更新失败: %v", err)
	}

	return nil
}
